// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import LIB_API from '../../FaceLib/store/API'
import API from './API'

// ============================== 导出异步调用 ============================== //

export default {
  // —————————————————————————————— 基础 —————————————————————————————— //

  async remoteBase({ state }) {
    const LIB = await LIB_API.getOne({ id: state.param.faceLibId })
    CORE.MAP.ROUTE_TITLE = LIB.name
    return { MAP: { LIB } }
  },

  // —————————————————————————————— 列表 —————————————————————————————— //

  async remoteList({ state: { param } }) {
    const [num, arr] = await API.getList(param)
    return [num, transList(arr)]
  },

  // —————————————————————————————— 增 —————————————————————————————— //

  async remoteAdd({ state: { one } }) {
    const msg = await API.add(one)
    return msg
  },

  // —————————————————————————————— 改 —————————————————————————————— //

  async remoteEdit({ state: { one } }) {
    const msg = await API.edit(one)
    return msg
  },

  // —————————————————————————————— 删 —————————————————————————————— //

  async remoteDel({ state: { one } }) {
    const msg = await API.del(one)
    return msg
  },

  // —————————————————————————————— 提交 —————————————————————————————— //

  async remoteSubmit({ state: { one } }) {
    let msg
    if (one.faceDeviceId) msg = await API.submitOne(one)
    else if (one.facePersonIdList.length) msg = await API.submitMulti(one)
    else msg = await API.submitAll(one)
    return msg
  },
}

// ============================== 转换方法 ============================== //

const transList = (arr) => {
  arr.forEach((item) => {
    const successDevice = item.faceModelRecordDto.filter((item) => item.syncStatus === 3)
    item.syncCount = `${successDevice.length} / ${item.faceModelRecordDto.length}`
  })
  return arr
}
